class Dog:
    species = 'dog'

    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 类方法：使用 @classmethod 装饰器定义，接收隐式的第一个参数 cls，指向类本身而不是实例。
    @classmethod
    def from_brith_year(cls, name, brith_year):
        age = 2024 - brith_year
        return cls(name, age)

    # 静态方法：使用 @staticmethod 装饰器定义，不接收隐式的第一个参数，它们的行为类似于普通的函数，但属于类的一部分。
    @staticmethod
    def is_adult(age):
        return age > 2

dog3 = Dog.from_brith_year('小白', 2020)
print(dog3.name, dog3.age)

print(Dog.is_adult(dog3.age))

